package com.lenl.arithmetic.sort;

import com.lenl.datastruct.tree.HeapSort;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

/**
 * @author Lenl
 * @version v1.0
 * @create 2022-05-02 10:55
 * @description 测试排序速度
 */
public class TestSortSpeed {
    public static void main(String[] args) {
        int[] arr=getArr(8000000);

        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyyMMdd_HHmmssSSS");
        System.out.println(simpleDateFormat.format(new Date()));

        //交换方式的希尔排序比普通插入排序更慢
        //InsertSort.doInsertSort(arr);
        //doShellSort(arr);
        //移位的希尔排序贼快
        //ShellSort.moveShellSort(arr);
        //快速排序
        //QuickSort.doQuickSort(arr,0,arr.length-1);
        //归并排序
        //int[] temp=new int[arr.length];
        //MergeSort.doMergeSort(arr,0,arr.length-1,temp);

        //基数排序
        //RadixSort.doRadixSort(arr);

        //堆排序
        HeapSort.heapSort(arr);

        System.out.println(simpleDateFormat.format(new Date()));
        //数量小时输出
        //System.out.println(Arrays.toString(arr));
    }
    //获取随机的数组，[0,8000000)
    public static int[] getArr(int len){
        int[] arr=new int[len];
        //测试速度
        for (int i=0;i<arr.length;i++){
            arr[i]=(int)(Math.random()*8000000);//[0,8000000)
        }
        return arr;
    }
}
